package com.liss.basiccore;

import java.util.HashSet;
import java.util.Set;

/**
 * 在JDK 6或更早之前的HotSpot虚拟机中，常量池都是分配在永久代中，
 * 我们可以通过-XX：PermSize和-XX：MaxPermSize限制永久代的大小，即可间接限制其中常量池的容量
 * VM Args：-XX:PermSize=6M -XX:MaxPermSize=6M
 */
public class RuntimeConstantPoolOOM {
    public static void main(String[] args) {
        //使用set保持着常量池引用，避免Full GC回收常量池行为
//        Set<String> set = new HashSet<>();
//        short i =0;
//        while (true){
//            set.add(String.valueOf(i++).intern());
//        }
        String str1 = new StringBuilder("计算机").append("软件").toString();
        System.out.println(str1.intern() == str1);
        String str2 = new StringBuilder("ja").append("va").toString();
        System.out.println(str2.intern() == str2);
    }
}
